/**
 * @Title: Message
 * @Package cn.com.yiqi.wsc.portal.common
 * @Description: TODO
 * Copyright: Copyright (c) 2016
 * Company: 成都壹柒互动科技有限公司
 * @author 会员系统组-胥钰淋
 * @date 2017/2/13 10:08
 * @version V1.0
 */
package cn.com.yiqi.wsc.portal.common;

import cn.com.yiqi.wsc.util.SpringUtils;

/**
 *
 *@ClassName: Message
 * @Description: TODO
 * @author 会员系统组-胥钰淋
 * @date 2017/2/13 10:08
 *
 */
public class Message {

    /**
     * 类型
     */
    public enum Type {

        /** 成功 */
        success,

        /** 警告 */
        warn,

        /** 错误 */
        error
    }

    /** 类型 */
    private Type type;

    /** 内容 */
    private String content;

    /** 标号，错误标号，成功标号等 */
    private Integer code;

    /** 复杂类型数据 */
    private Object data;

    /**
     * 初始化一个新创建的 Message 对象，使其表示一个空消息。
     */
    public Message() {

    }

    /**
     * 初始化一个新创建的 Message 对象
     *
     * @param type
     *            类型
     * @param content
     *            内容
     */
    public Message(Type type, String content) {
        this.type = type;
        this.content = content;
    }

    /**
     * @param type
     *            类型
     * @param content
     *            内容
     * @param args
     *            参数
     */
    public Message(Type type, String content, Object... args) {
        this.type = type;
        this.content = SpringUtils.getMessage(content, args);
    }

    /**
     * 返回成功消息
     *
     * @param content
     *            内容
     * @param args
     *            参数
     * @return 成功消息
     */
    public static Message success(String content, Object... args) {
        return new Message(Type.success, content, args);
    }

    /**
     * 返回警告消息
     *
     * @param content
     *            内容
     * @param args
     *            参数
     * @return 警告消息
     */
    public static Message warn(String content, Object... args) {
        return new Message(Type.warn, content, args);
    }

    /**
     * 返回错误消息
     *
     * @param content
     *            内容
     * @param args
     *            参数
     * @return 错误消息
     */
    public static Message error(String content, Object... args) {
        return new Message(Type.error, content, args);
    }

    /**
     * 获取类型
     *
     * @return 类型
     */
    public Type getType() {
        return type;
    }

    /**
     * 设置类型
     *
     * @param type
     *            类型
     */
    public void setType(Type type) {
        this.type = type;
    }

    /**
     * 获取内容
     *
     * @return 内容
     */
    public String getContent() {
        return content;
    }

    /**
     * 设置内容
     *
     * @param content
     *            内容
     */
    public void setContent(String content) {
        this.content = content;
    }

    public Integer getCode() {
        return code;
    }

    public Message setCode(Integer code) {
        this.code = code;
        return this;
    }

    public Object getData() {
        return data;
    }

    public Message setData(Object data) {
        this.data = data;
        return this;
    }

    @Override
    public String toString() {
        return SpringUtils.getMessage(content);
    }

}
